package cn.edu.ecut.controller;

import com.mozicoding.web.context.ParameterHolder;
import com.mozicoding.web.support.Controller;
import com.mozicoding.web.support.RequestMapping;

import javax.servlet.http.HttpSession;

@Controller(path = "/employee")
public class EmployeeController {

    @RequestMapping( path = "/sign/in")
    public String signIn( ParameterHolder holder , HttpSession session){ // 当浏览器访问 /employee/sign/in 时就执行这个 控制器方法
        System.out.println( "- - - - - signIn - - - - -" );
        String uname = holder.getString( "username" );
        String passwd = holder.getString( "password" );
        System.out.println( uname + " , " + passwd );

        //在会话对象中设置属性，其中第一个参数表示属性名称（必须是String）,第二个参数是属性值（任意应用类型）
        session.setAttribute("employeeName" , uname);

        // 重定向( redirect ) 到 /employee/main 会导致浏览器会重新打开 /employee/main
        return "redirect:/employee/main" ;
    }

    @RequestMapping( path = "/main" )
    public String mainPage(){ // 当浏览器访问 /employee/main 时就执行这个 控制器方法
        System.out.println( "- - - - - mainPage - - - - -" );
        // 返回 "forward:/WEB-INF/pages/main.html" 与 返回 "/WEB-INF/pages/main.html 作用相同
        // 都是执行了 请求转发 操作，即将当前请求 派遣到 指定的页面
        return "forward:/WEB-INF/pages/main.html" ; // 请求转发( request forward )
    }
    @RequestMapping( path = "/sign/out")
    public String signOut( HttpSession session){
        //根据属性名称从会话对象中删除属性
        System.out.println("----signOut----");
        session.removeAttribute("employeeName");
        return "redirect:/employee/main";
    }
}
